package battleship_client.screens;

import java.awt.*;
import javax.swing.*;
import battleship_client.Controller;

/**
 * Ventana de error con un texto simple
 * @author jalejandrovc
 */
public class ErrorScreen extends Screen {

    /**
     * Crea un objeto ErrorScreen
     * @param message el mensaje que se va a mostrar en la ventana de error
     */
    public ErrorScreen(Controller controller, String message, boolean dispose) {
        setLookAndFeel();
        initComponents(message);
        this.dispose = dispose;
        this.controller = controller;
    }

    /**
     * Inicializa los componentes de la ventana
     * @param message el mensaje que se va a mostrar
     */
    public void initComponents(String message) {
        setLocationRelativeTo(null);
        setSize(400, 120);
        this.setTitle("Error");
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        lblMensaje = new JLabel(message);
        btnAceptar = new JButton("Accept");
        lblMensaje.setBounds(10, 10, 380, 25);
        btnAceptar.setBounds(125, 45, 100, 25);
        btnAceptar.addMouseListener(new java.awt.event.MouseAdapter() {

            public void mouseClicked(java.awt.event.MouseEvent evt) {
                handleDispose();
            }
        });

        errorPanel = new JPanel();
        errorPanel.setSize(350, 150);
        errorPanel.setLayout(null);
        container = getContentPane();

        errorPanel.add(lblMensaje);
        errorPanel.add(btnAceptar);
        container.add(errorPanel);
    }

    public void handleDispose() {
        if (dispose) {
            dispose();
        } else {
           this.dispose();
           controller.gameFinished();
        }
    }
    private JLabel lblMensaje;
    private JButton btnAceptar;
    private JPanel errorPanel;
    private Container container;
    private boolean dispose;
    private Controller controller;
}
